const { Subscription } = require("egg");
class UpdateCache extends Subscription {
  // 通过 schedule 属性来设置定时任务的执行间隔等配置
  static get schedule() {
    return {
      interval: "1m", // 1 分钟间隔
      // egg.js 默认是多进程的，会有多个 worker，这里指每个 worker 都执行
      type: "all", // 指定所有的 worker 都需要执行
    };
  }

  // subscribe 是真正定时任务执行时被运行的函数
  async subscribe() {
    console.log("subscribe");
    const res = await this.ctx.curl(this.config.cache.url, {
      dataType: "json",
    });
    this.ctx.app.cache = res.data;
  }
}

module.exports = UpdateCache;
